export const useRandomTime = () => {
  // 随机时间
  const getRandomTime = (startTime: string, endTime: string) => {
    if (startTime && endTime) {
      // 开始时间的小时部分
      const startHour = parseInt(startTime.split(':')[0])
      // 结束时间的小时部分
      const endHour = parseInt(endTime.split(':')[0])
      // 开始时间的分钟部分
      const startMinute = parseInt(startTime.split(':')[1])
      // 结束时间的分钟部分
      const endMinute = parseInt(endTime.split(':')[1])
      // 获取一个随机时间——小时
      const randomHour = Math.floor(Math.random() * (endHour - startHour + 1) + startHour)
      // 如果随机时间的小时部分不等于起止时间的小时部分
      if (randomHour != startHour && randomHour != endHour) {
        // 获取一个随机时间——分钟
        const randomMinute = String(Math.floor(Math.random() * 60)).padStart(2, '0')
        // 拼接随机时间
        return `${randomHour}:${randomMinute}`
      }
      // 如果随机时间的小时部分等于开始时间的小时部分，startMinute ~ 59
      else if (randomHour == startHour && randomHour != endHour) {
        // 获取一个随机时间——分钟
        const randomMinute = String(Math.floor(Math.random() * (60 - startMinute) + startMinute)).padStart(2, '0')
        // 拼接随机时间
        return `${randomHour}:${randomMinute}`
      }
      // 如果随机时间的小时部分等于结束时间的小时部分，0 ~ endMinute
      else if (randomHour == endHour && randomHour != startHour) {
        // 获取一个随机时间——分钟
        const randomMinute = String(Math.floor(Math.random() * (endMinute + 1))).padStart(2, '0')
        // 拼接随机时间
        return `${randomHour}:${randomMinute}`
      }
      // 开始时间的小时部分等于结束时间的小时部分
      else if (startHour == endHour) {
        // 获取一个随机时间——分钟
        const randomMinute = String(Math.floor(Math.random() * (endMinute - startMinute + 1) + startMinute)).padStart(2, '0')
        // 拼接随机时间
        return `${randomHour}:${randomMinute}`
      }
    }
  }

  // 获取连续时间 每次调用加1~3分钟
  const getContinuousTime = (currentTime: string, startTime: string, endTime: string) => {
    const [currHour, currMinute] = currentTime ? currentTime.split(':').map(Number) : startTime.split(':').map(Number)
    // 随机生成1~2之间的分钟数
    const addition = Math.floor(Math.random() * 2) + 1
    let newMinute = currMinute + addition
    let newHour = currHour

    if (newMinute >= 60) {
      newMinute -= 60
      newHour += 1
    }
    if (newHour >= 24) {
      newHour = newHour % 24
    }
    const hourStr = String(newHour).padStart(2, '0')
    const minuteStr = String(newMinute).padStart(2, '0')
    return `${hourStr}:${minuteStr}`
  }

  return { getRandomTime, getContinuousTime }
}
